/**
 * 
 */
package com.autonavi.commons.dbhelper.wrapper;

import java.sql.ResultSet;
import java.util.Map;

import com.autonavi.commons.dbhelper.rsprocessor.BasicProcessor;
import com.autonavi.commons.dbhelper.rsprocessor.RSProcessor;

/**
 * @author jintao.yu
 * @date 2014年1月10日 上午11:18:47
 * @package com.autonavi.commons.dbhelper.rsprocessor
 * @className ProcessorWrapper
 * @Description TODO
 */
public class ProcessorWrapper {

	private final RSProcessor processor;
	
	private static ProcessorWrapper processorWrapper;
	static{
		processorWrapper=new ProcessorWrapper(new BasicProcessor());
	}
	
	/**
	 * @author jintao.yu
	 * @date 2014年1月10日 上午11:18:47 
	 * @Description 私有构造函数用于，建立单实例
	 */
	private ProcessorWrapper(RSProcessor processor) {
		// TODO Auto-generated constructor stub
		this.processor=processor;
	}
	
	
	/**
	 * @author jintao.yu
	 * @date 2014年1月13日 下午4:17:43
	 * @Description 转化resultset中one raw为map对象
	 * @param resultSet
	 * @return Map<String,Object>
	 */
	public Map<String,Object> processMap(ResultSet resultSet){
		return null;
	}
	
	
	
	/**
	 * @author jintao.yu
	 * @date 2014年1月13日 下午4:19:25
	 * @Description 将一行转化一个bean对象.如果result中存在bean中不存在的属性
	 * 				，判断是否可以通过设置来决定是否抛出异常
	 * @param resultSet
	 * @param type
	 * @return T
	 */
	public <T> T processBean(ResultSet resultSet,Class<T> type){
		return null;
	}
	
	
	
	/**
	 * @author jintao.yu
	 * @date 2014年1月13日 下午4:29:59
	 * @Description 快捷方法返回
	 * @param resultSet
	 * @param type
	 * @return T
	 */
	public <T> T ProcessList(ResultSet resultSet,Class<T> type){
		return null;
	}
	
	
	
	
	public static ProcessorWrapper getInstance(){
		if(processorWrapper==null){
			synchronized (ProcessorWrapper.class) {
				if(processorWrapper!=null){
					return processorWrapper;
				}
				processorWrapper=new ProcessorWrapper(new BasicProcessor());
			}
		}
		return processorWrapper;
	}
	
	public void setEnableCast2BeanException(){
		
	}
}
